# 定义变量
# age = 16
# # 判断：有个表达式结果是布尔值
# # 条件：age >= 18
# if age >= 18:
#     print("允许进入网吧")
#
# # 思考：下面这句话什么时候执行
# print("猜猜我什么时候执行？")
# 结论：
# if条件成立执行内部代码，否则不执行if内部代码，默认按照代码顺序向下执行

# 2.2 if 和else判断
# 输入用户年龄
# age = int(input("请输入用户年龄："))
# # 判断年龄是否18
# if age >= 18:
#     # 满足条件
#     print("允许进入网吧")
# else:
#     # 不满足条件
#     print("未成年")
# 结论：
# if 和 else 成对出现时需要对齐，else不能单独使用
# if 后面有条件 else 后面直接冒号，if 和 else 内部代码必须有缩进


# 2.3 逻辑运算符条件
# and 构成条件
# # 1.定义整数变量
# age = 19
# # 2.判断年龄是否正确(0~120) ‐‐> age >0 and age < 120
# if 0 < age < 120:
#     print("年龄正确")

# or 构成条件
#  1.定义变量
# python_score = 80
# c_score = 30
# 2.判断成绩(只要有一门大于60即可)
# if python_score > 60 or c_score > 60:
#     print("成绩合格")

# not 构成条件
# 定义变量(True表示本公司员工)
# 定义变量
# employer = False
# if not  (employer is False):
#     print("公司员工")
# else:
#     print("不是公司员工")
#


# 2.4 elif的多重判断
# 定义分数变量
# score = int(input("请输入分数："))
# # 判断分数
# if score >= 90:
#     print("优")
# elif 80 <= score <  90:
#     print("良")
# elif 70 <= score <  80:
#     print("中")
# elif 70 <= score <  70:
#     print("差")
#     # 上述条件都不满足时执行else
# else:
#    print("不及格")


# if的嵌套
# 定义变量
# has_ticket = input("请确认是否有票")
# if has_ticket:
#     knife_length = int(input("请输入刀的长度："))
#     if knife_length >= 20:
#         print("不允许上车")
#     else:
#         print("安检通过，允许上车")
# else:
#     print("不允许进门")

# 写代码的核心：编程思想 ‐‐> 理解需求 ‐‐> 提炼转换语句（逻辑）
# 思考：如果变量的值需要变化，怎么处理？
# ①input函数输入的任意字符都会当做字符串
# ②在python中任意非空或非0数据就是真值


# while循环
# 定义一个计数器
# while 条件:
# 满足条件需要执行的操作（循环的语句）
# 修改计数器(直到条件不满足为止)
# 道歉100次，内容:"媳妇,对不起我错了!"
# 1.定义计数器
# num = 1
# # 2.设置循环条件(不够100次需要重复执行)
# while num <= 10:
#     # 3.执行循环代码
#     print("媳妇，对不起我错了")
#     # 4.修改计数器
#     num += 1    # 循环递增：num = num + 1
# 总结：
# 1. while后台跟条件，结果是布尔值（True/False）,当为True时循环才能执行
# 2. 循环体代码必须缩进（tab），记得修改计数器（忘了后果很严重：进入死循环）


# while循环：实现0~100累加求和
# 分析：
# 初始的计算结果为 0
# 1.计算结果 = 0 + 1
# 2.计算结果 = 1 + 2
# 3.计算结果 = 3 + 3
# 4.计算结果 = 6 + 4
# ....
# 100.计算结果 = 上次的结果 + 100
# 推导公式：计算结果 = 上次结果 + 次数
# 1.定义计数器
# num = 1
# # 定义初始结果变量
# result = 0
# # 2.设置while循环条件
# while num <= 100:
#     # 3.编写循环代码
#     result =result + num
#     # 4.修改计数器
#     num += 1
#     # 查看计算结果
# print(f"求和结果为：{result}")
# 思考：求0~100之间的偶数的累加和


# 3.2 while循环中的break
# 1.定义一个计数器
# 2.while 条件:
# 3.满足条件需要执行的操作
# 当某个条件满足时直接结束循环 break
# 4.修改计数器(直到条件不满足为止)

# 案例： 一共吃5个苹果， 吃完第一个， 吃第二个...， 这里"吃苹果"是重复动作
# 情况一： 如果吃的过程中， 吃完第三个吃饱了， 则不需要再吃第4个和第五个苹果， 即是吃苹果的动作停止(不再吃苹果)
# 1.定义计数器
# num = 1
# # 2.设置while循环
# while num <= 5:
#     # 3.编写循环代码
#     print(f"吃了第{num}个苹果")
#     # 判断是否吃饱？ num数量是否是3
#     if num == 3:
#         print("吃饱了，后面的不吃了")
#         break
#     num += 1
# 思考：吃完第三个，吃饱了就不能继续吃（循环提前结束）
# 判断是不是吃完了第三个
# 问题：判断加哪个位置？ ‐‐> 吃完了才能判断是否吃饱，放在吃的后面
# break作用：循环中，当某个条件成立时可以提前结束循环


# for循环
# 需求：遍历字符串"itheima"，遇到字母e退出循环
# 1.定义字符串变量
# info = "itheima"
# # 2.遍历取出每个元素（字符）
# for i in info:
#     # 条件判断（遇到字母e退出循环）
#     if i == "e":
#         break
#     # 打印取出的结果
#     print(i)
# 注意
# for 循环主要用于容器内元素的遍历（遍历完成后自动结束），没有计数器的概念
# 临时变量随便定义，没有初始值，习惯用字母i
# break作用和while循环中的作用一样


# range函数
# 道歉10次，内容:"媳妇,对不起我错了!"
# for循环实现
# 容器：计数10次
# for i in range(1,11):
# for i in range(10):
#         print("对不起，媳妇我错了")


# 3.需求for循环：计算0~100之间所有整数的累加和
# 定义接收结果变量
# result = 0
# # 循环遍历取数据计算
# for i in range(1,101):
# # 取出容器的数据参与计算
# result += i
# # 打印最后计算结果
# print(f"结果：{result}")
# 4.通过for循环：计算0~100之间所有偶数的累计和
# 方式1
# resule = 0
# for i in range(0, 101, 2):
#     resule += i
# print(resule)


# 方式2
# result = 0
# for i in range(101):
    # 先取出i，然后在判断
#     if i % 2 == 0:
#         result += i
# print(result)

# 范围函数：在for循环中可以记录循环次数，还可以参与计算
# 思考：通过for循环打印出：九九乘法表 ‐‐‐> 提示：循环用到for循环的嵌套




